home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 July: Mac OS SDK / Dev.CD Jul 96 SDK / Dev.CD Jul 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc Development Framework / ODFDev / ODF / Framewrk / FWPart / Include / FWTrackr.h < prev    next >
Encoding:
Text File  |  1996-04-25  |  5.3 KB  |  177 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWTrackr.h
  4. //    Release Version:    $ ODF 1 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9. //
  10. //    Three Classes:
  11. //            FW_CTracker
  12. //            FW_CThreeStepTracker
  13. //            FW_COneStepTracker
  14. //
  15. //
  16.  
  17. #ifndef FWTRACKR_H
  18. #define FWTRACKR_H
  19.  
  20. #ifndef FWPOINT_H
  21. #include "FWPoint.h"
  22. #endif
  23.  
  24. #ifndef FWEXCLIB_H
  25. #include "FWExcLib.h"
  26. #endif
  27.  
  28. //========================================================================================
  29. //    Forward Declaration
  30. //========================================================================================
  31.  
  32. class ODFacet;
  33. class ODSession;
  34. class FW_CView;
  35. class FW_CMouseEvent;
  36. class FW_CPrivBaseScroller;
  37.  
  38. //========================================================================================
  39. //    class FW_CBaseTracker
  40. //========================================================================================
  41.  
  42. // [JEL] These were declared as autodestruct objects, but they don't seem to require it???
  43.  
  44. class FW_CBaseTracker
  45. {
  46. //----------------------------------------------------------------------------------------
  47. //    Initialization/Destruction
  48. //
  49. public:
  50.     FW_CBaseTracker(Environment* ev, FW_CView* view, ODFacet* facet);
  51.     virtual ~FW_CBaseTracker();
  52.     
  53. //----------------------------------------------------------------------------------------
  54. //    New API
  55. //
  56. public:    
  57.     // ----- Tracking -----
  58.     virtual FW_CPoint     BeginTracking(Environment* ev, 
  59.                             const FW_CPoint& anchorPoint) = 0;
  60.     virtual FW_CPoint     ContinueTracking(Environment* ev,
  61.                             const FW_CPoint& anchorPoint, 
  62.                             const FW_CPoint& previousPoint, 
  63.                             const FW_CPoint& currentPoint) = 0;
  64.     virtual FW_Boolean     EndTracking(Environment* ev,
  65.                             const FW_CPoint& anchorPoint, 
  66.                             const FW_CPoint& lastPoint) = 0;
  67.     
  68.     ODFacet*            GetFacet(Environment*) const
  69.                             {return fFacet;}
  70.     FW_CView*            GetView(Environment*) const
  71.                             {return fView;}
  72.                             
  73. //----------------------------------------------------------------------------------------
  74. //    Data Members
  75. //
  76. protected:
  77.     FW_CPoint            fAnchorPoint;
  78.     FW_CPoint            fPreviousPoint;
  79.     
  80. private:
  81.     ODFacet*            fFacet;    
  82.     FW_CView*            fView;    
  83. };
  84.  
  85. //========================================================================================
  86. //    class FW_CDropTracker
  87. //========================================================================================
  88.  
  89. class FW_CDropTracker : public FW_CBaseTracker
  90. {
  91. //----------------------------------------------------------------------------------------
  92. //    Initialization/Destruction
  93. //
  94. public:
  95.     FW_CDropTracker(Environment* ev, FW_CView* view, ODFacet* facet);
  96.     virtual ~FW_CDropTracker();
  97.     
  98. //----------------------------------------------------------------------------------------
  99. //    New API
  100. //
  101. public:
  102.     // ----- Dispatch tracking -----
  103.     void                 HandleBeginTracking(Environment *ev,
  104.                             const FW_CPoint& where,
  105.                             unsigned long dragAttributes);
  106.     void                HandleContinueTracking(Environment* ev,
  107.                             const FW_CPoint& where);
  108.     FW_Boolean             HandleEndTracking(Environment* ev,
  109.                             const FW_CPoint& where);
  110.  
  111.     // ----- Tracking -----
  112.     virtual FW_CPoint     BeginTracking(Environment* ev, 
  113.                             const FW_CPoint& anchorPoint);
  114.     virtual FW_CPoint     ContinueTracking(Environment* ev,
  115.                             const FW_CPoint& anchorPoint, 
  116.                             const FW_CPoint& previousPoint, 
  117.                             const FW_CPoint& currentPoint);
  118.     virtual FW_Boolean     EndTracking(Environment* ev,
  119.                             const FW_CPoint& anchorPoint, 
  120.                             const FW_CPoint& lastPoint);
  121.  
  122.     // ----- Drag Hilite -----
  123.     virtual void        ShowDragHilite(Environment* ev, ODShape* hiliteShape, FW_Boolean showInside);
  124.     virtual void        HideDragHilite(Environment* ev);
  125.  
  126.     // ----- Drag Attributes -----
  127.     FW_Boolean            IsInSourceFrame(Environment*) const
  128.                             {return (fDragAttributes & kODDragIsInSourceFrame);}
  129.     unsigned long        GetDragAttributes(Environment* ev) const;
  130.  
  131. //----------------------------------------------------------------------------------------
  132. //    Internal API
  133. //
  134. protected:
  135.     void                PrivShowDefaultHilite(Environment* ev);
  136.     
  137. //----------------------------------------------------------------------------------------
  138. //    Data Members
  139. //
  140. private:
  141.     unsigned long             fDragAttributes;
  142.     ODSession*                fSession;
  143.     FW_CPrivBaseScroller*    fScroller;
  144.     
  145. #ifdef FW_BUILD_MAC
  146.     FW_Boolean             fSavedHiliteState;        // Used during auto-scroll
  147.     FW_Boolean            fMacHiliteOn;
  148. #endif
  149. };
  150.  
  151. //========================================================================================
  152. //    class FW_CTracker
  153. //========================================================================================
  154.  
  155. class FW_CTracker : public FW_CBaseTracker
  156. {
  157. //----------------------------------------------------------------------------------------
  158. //    Initialization/Destruction
  159. //
  160. public:
  161.     FW_CTracker(Environment* ev, FW_CView* view, ODFacet* facet, FW_Boolean waitMouseMoved = TRUE);
  162.     virtual ~FW_CTracker();
  163.     
  164. //----------------------------------------------------------------------------------------
  165. //    New API
  166. //
  167. public:
  168.     virtual FW_Boolean    Track(Environment* ev, const FW_CMouseEvent& theMouseEvent);
  169.  
  170. //----------------------------------------------------------------------------------------
  171. //    Data Members
  172. //
  173. private:
  174.     FW_Boolean            fWaitMouseMoved;
  175. };
  176.  
  177. #endif